const express = require('express');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server, {
    cors: {
        origin: "http://localhost:5173", // 替换为你的前端地址
        methods: ["GET", "POST"],
    },
});

// 定义响应内容
const answers = {
    '工作时间': "我们的工作时间是周一到周五，9:00 - 18:00",
    '退款': "请联系我们的客服，提供订单信息进行退款",
    '保修': "产品的保修期是两年，具体情况请查看产品说明",
    '修改订单': "可以的，请联系客服进行修改",
    '在吗': "您好，在的亲",
    "在哪搜索": '您可以到营销热点里面寻找',
    "我需要查找内容": '好的，请详细说一下!',
    "可以吗": "当然可以",
    '默认': '您好，在的亲，请问有什么可以帮助您的吗？',
    "blob": '您好,这边图片暂时无法识别哦,请转文字描述哦',
    "微笑": "你好啊，有什么需要帮助?",
    "流泪": "很抱歉没有帮助到您",
    "睡": "好的，亲，晚安哦!",
    "怒": "亲亲，很抱歉呢，这边有什么其他问题能帮你解决吗？"
};

// 监听客户端连接
io.on('connection', (socket) => {
    console.log('新用户连接');

    // 发送心跳消息的定时器
    const heartbeatInterval = setInterval(() => {
        socket.emit('heartbeat', 'ping'); // 发送心跳消息
    }, 30000);

    // 监听客户端消息
    socket.on('message', (message) => {
        console.log(`收到的消息：${message}`);
        let response = answers['默认'];
        for (let key in answers) {
            if (message.includes(key)) {
                response = answers[key];
                break;
            }
        }
        console.log('发送的回复：' + response);
        socket.emit('response', response);
    });

    // 处理断开连接
    socket.on('disconnect', () => {
        console.log('断开连接');
        clearInterval(heartbeatInterval);
    });
});

// 启动服务器
server.listen(9090, () => {
    console.log('9090 WebSocket 服务器已启动，监听 ws://localhost:9090');
});